package com.source.codingperformance;

import java.util.List;

public class Ssamba75 {	
	
	//String과 StringBuffer에 차이가 있는것처럼 용도에 맞는 클래스를 사용.
	//For 문은 새로운타입의 For문보다는 size를 밖으로꺼낸 기존 for문이 더 나음(jdk버젼별로 다를 수 있음).
	//For 문안에서 값을 할당받는 변수를 굳이 For문 밖에서 생성할 필요가 없다. 성능상 차이가 없음. 오히려, 변수 스코프 증가방지와 가독성을 위해 For문 안이 나을수도 있음.
	public void perform1(List<String> exampleList, int size) {
		String result = new String();
		result = "[";
		for (String s : exampleList) {
			result += s;
			result += ",";
		}
		result += "]";
	}
	public void perform2(List<String> exampleList, int size) {
		StringBuffer result = new StringBuffer();
		result.append("[");
		for (String s : exampleList) {
			result.append(s);
			result.append(",");
		}
		result.append("]");
		result.deleteCharAt(result.length()-2);
	}
	public void perform3(List<String> exampleList, int size) {
		StringBuffer result = new StringBuffer(size);
		String strDelimiter = ",";
		result.append("[");
		int resultSize = exampleList.size();
		for (int i=0; i < resultSize; i++) {
			result.append(exampleList.get(i));
			result.append(strDelimiter);
		}
		result.append("]");
		result.deleteCharAt(result.length()-2);
	}	
	
	public void performETC1(List<String> exampleList, int size) {
		StringBuffer result = new StringBuffer(size);
		String strDelimiter = ",";
		result.append("[");
		String temp = "";
		int resultSize = exampleList.size();
		for (int i=0; i < resultSize; i++) {
			temp = exampleList.get(i);
			result.append(temp);
			result.append(strDelimiter);
		}
		result.append("]");
		result.deleteCharAt(result.length()-2);
	}
	public void performETC2(List<String> exampleList, int size) {
		StringBuffer result = new StringBuffer(size);
		String strDelimiter = ",";
		result.append("[");
		int resultSize = exampleList.size();
		for (int i=0; i < resultSize; i++) {
			String temp = exampleList.get(i);
			result.append(temp);
			result.append(strDelimiter);
		}
		result.append("]");
		result.deleteCharAt(result.length()-2);
	}
}
